/*
Klasa bedaca modelem filozofa. Filozof najpierw mysli, a gdy zaczyna odczuwac glod, probuje 
zdobyc paleczki i rozpoczac jedzenie. Jesli paleczki sa niedostepne, ponownie mysli
*/
class Filozof extends Thread{

  private static int z=1;
  private int nr;
  private Stol stolik;
  private int counter=0;

  public Filozof(Stol s) {
    nr = z;
    z++;
    stolik = s;
  }

/* 
Filozof mysli przez 2 sekundy, po czym sprawdza, czy moze wziac paleczki. Jesli sa one dostepne
wowczas je przez pewien okres, a nastepnie odklada sztucce
*/
  public void run() {
    try {
      for(;;) {
        sleep(2000);
        if (stolik.wezPaleczke(nr)) {
          sleep(1000+(int)(Math.random()*5000));
          stolik.polozPaleczke(nr);
          counter++; 
          System.out.println(counter + this.getName());
          
        }
      }
    }
    catch (InterruptedException e) { }
  }

}